MapStruct একটি Java ভিত্তিক অ্যানোটেশন প্রক্রিয়াকরণ লাইব্রেরি যা ডোমেইন অবজেক্ট এবং DTO (Data Transfer Object) এর মধ্যে ডেটা ম্যাপিং সহজ করে। এটি compile-time এ কোড জেনারেট করে, ফলে আপনার মডেল ম্যাপিং দ্রুত এবং টাইপ-সেফ হয়।
MapStruct ব্যবহার করতে, আপনাকে IntelliJ IDEA বা Eclipse এ সঠিকভাবে সেটআপ করতে হবে। এখানে, আমরা দেখব কীভাবে IntelliJ IDEA এবং Eclipse এ MapStruct সেটআপ করা যায়।
১. IntelliJ IDEA তে MapStruct সেটআপ
IntelliJ IDEA একটি জনপ্রিয় Java IDE যা MapStruct সহ বিভিন্ন ফ্রেমওয়ার্কের জন্য উন্নত সমর্থন প্রদান করে। IntelliJ IDEA এ MapStruct সেটআপ করার জন্য নিচের স্টেপগুলো অনুসরণ করুন:
১.১ Maven বা Gradle প্রকল্পে MapStruct ডিপেনডেন্সি যোগ করা
আপনার প্রোজেক্টের pom.xml (Maven) বা build.gradle (Gradle) ফাইলে MapStruct ডিপেনডেন্সি যোগ করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো:
Maven:
<dependencies>
<!-- MapStruct Dependency -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.2.Final</version>
</dependency>
<!-- MapStruct Processor for compile-time code generation -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.2.Final</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.2.Final</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
Gradle:
dependencies {
implementation 'org.mapstruct:mapstruct:1.5.2.Final'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.2.Final'
}
১.২ IntelliJ IDEA তে Annotation Processor সক্রিয় করা
MapStruct কোড জেনারেট করতে annotation processing সক্রিয় থাকতে হবে। IntelliJ IDEA এ এটি সক্রিয় করতে:
- File > Settings > Build, Execution, Deployment > Compiler > Annotation Processors এ যান।
- Enable annotation processing চেকবক্সটি সিলেক্ট করুন।
- Obtain processors from project classpath অপশনটি সিলেক্ট করুন।
- Apply এবং OK ক্লিক করুন।
এটি IntelliJ IDEA কে MapStruct প্রসেসর ব্যবহার করতে সক্ষম করবে এবং ম্যাপিং কোড জেনারেট হবে।
১.৩ MapStruct Mapper Interface তৈরি করা
MapStruct ইন্টারফেসের মাধ্যমে ডেটা ম্যাপিং করতে পারেন। উদাহরণ:
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper(PersonMapper.class);
PersonDTO personToPersonDTO(Person person);
}
১.৪ Compile এবং Run
IntelliJ IDEA তে Build > Rebuild Project ক্লিক করুন, MapStruct স্বয়ংক্রিয়ভাবে ম্যাপিং কোড জেনারেট করবে। তারপর, আপনার মডেল ম্যাপিং সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে টেস্ট কোড চালাতে পারেন।
২. Eclipse তে MapStruct সেটআপ
Eclipse হল আরেকটি জনপ্রিয় Java IDE যা MapStruct এর জন্য সমর্থন প্রদান করে। Eclipse এ MapStruct সেটআপ করতে নিম্নলিখিত স্টেপগুলো অনুসরণ করুন:
২.১ Maven বা Gradle প্রকল্পে MapStruct ডিপেনডেন্সি যোগ করা
Eclipse এ MapStruct ব্যবহার করতে, প্রথমে আপনাকে pom.xml (Maven) বা build.gradle (Gradle) ফাইলে MapStruct ডিপেনডেন্সি যোগ করতে হবে, যা পূর্বে IntelliJ IDEA এ আলোচনা করা হয়েছিল।
২.২ Eclipse এ Annotation Processing সক্রিয় করা
Eclipse এ annotation processing সক্রিয় করার জন্য:
- Window > Preferences এ যান।
- Java > Compiler > Annotation Processing এ যান।
- Enable annotation processing চেকবক্সটি সিলেক্ট করুন।
- Apply এবং OK ক্লিক করুন।
এটি Eclipse কে MapStruct প্রসেসর ব্যবহার করতে সক্ষম করবে।
২.৩ Eclipse তে Build Path কনফিগারেশন
Eclipse এ annotation processor সঠিকভাবে কাজ করার জন্য build path কনফিগার করতে হতে পারে।
- Right-click on project > Properties > Java Build Path এ যান।
- Libraries ট্যাবের নিচে Maven Dependencies সিলেক্ট করুন (যদি Maven ব্যবহার করেন)।
- Add Library > Annotation Processing নির্বাচন করুন।
২.৪ MapStruct Mapper Interface তৈরি করা
Eclipse এ Mapper Interface তৈরি করুন, যেমন:
@Mapper
public interface PersonMapper {
PersonMapper INSTANCE = Mappers.getMapper(PersonMapper.class);
PersonDTO personToPersonDTO(Person person);
}
২.৫ Build এবং Run
Eclipse এ Project > Clean ক্লিক করুন, এর মাধ্যমে MapStruct বিল্ড টাইমে কোড জেনারেট করবে। তারপর, আপনার কোড রান করতে পারেন এবং ম্যাপিং যাচাই করতে পারেন।
৩. Common Issues and Solutions
- Annotation Processor Disabled: যদি কোড জেনারেট না হয়, তবে নিশ্চিত করুন যে আপনি annotation processing সক্রিয় করেছেন, যা IntelliJ IDEA বা Eclipse এ আলাদাভাবে সেট করতে হয়।
- Version Conflict: MapStruct এর কিছু ডিপেনডেন্সি version conflict তৈরি করতে পারে, বিশেষ করে JPA বা Spring Integration এর ক্ষেত্রে। সঠিক সংস্করণ নির্বাচন করুন এবং মাভেন বা গ্র্যাডলে ভার্সন সঠিকভাবে কনফিগার করুন।
- Compilation Errors: যদি আপনার Mapper ইন্টারফেসের মাধ্যমে কোড জেনারেশন কাজ না করে, তাহলে MapStruct এর সঠিক প্লাগইন এবং কোড প্রসেসর ইনস্টল করা আছে কিনা চেক করুন। Eclipse বা IntelliJ IDEA এর ক্যাশে ক্লিয়ার করা উচিত।
সারাংশ
MapStruct এর সাথে কাজ করার জন্য IntelliJ IDEA এবং Eclipse এ কিছু সেটআপ কনফিগারেশন প্রয়োজন। annotation processing সক্রিয় করে আপনি MapStruct ব্যবহার করে compile-time ম্যাপিং কোড জেনারেট করতে পারেন। IntelliJ IDEA এবং Eclipse উভয় IDE তে MapStruct সেটআপ করার জন্য প্রয়োজনীয় ডিপেনডেন্সি এবং কনফিগারেশন যথাযথভাবে ব্যবহার করুন, যাতে আপনার ডোমেইন অবজেক্ট এবং DTO এর মধ্যে ডেটা ট্রান্সফার সহজে পরিচালিত হয়।
Read more